package com.guigu.guliorder.entity.vo;


import com.guigu.gulicommon.entity.pojo.CartItem;
import com.guigu.gulicommon.entity.vo.MemberAddressVo;
import lombok.*;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 提交订单的DTO
 *
 * @author 陈俊杰
 * @version 1.0
 * @since 2024/9/24 20:16
 */
//@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class OrderConfirmsVo {
    /**
     * 收货地址
     */
    @Getter
    @Setter
    private List<MemberAddressVo> memberAddress;

    /**
     * 购物项列表
     */
    @Getter
    @Setter
    private List<CartItem> cartItems;

//    /**
//     * 发票记录
//     */

    /**
     * 优惠券信息(这里只展示积分)
     */
    @Getter
    @Setter
    private Integer integration;

    /**
     * 订单总额
     */
    private BigDecimal total;

    /**
     * 应付金额
     */
    private BigDecimal payPrice;

    /**
     * 订单防冲令牌
     */
    @Getter
    @Setter
    private String orderToken;

    /**
     * 获取订单总额
     *
     * @return 订单总额
     */
    public BigDecimal getTotal() {
        BigDecimal decimal = new BigDecimal("0");
        if (!cartItems.isEmpty()) {
            for (CartItem item : cartItems) {
                BigDecimal multiply = item.getPrice().multiply(new BigDecimal(item.getCount().toString()));
                decimal = decimal.add(multiply);
            }
        }
        return decimal;
    }

    /**
     * 获取应付金额
     *
     * @return 应付金额
     */
    public BigDecimal getPayPrice() {
        return getTotal();
    }
}
